package com.jt.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jt.pojo.Item;
import com.jt.vo.EasyUITable;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.jt.mapper.ItemMapper;

import java.util.List;

@Service
public class ItemServiceImpl implements ItemService {
	
	@Autowired
	private ItemMapper itemMapper;

	@Override
	public EasyUITable findItemByPage(int page, int rows) {
		IPage<Item> iPage = new Page<>(page,rows);
		QueryWrapper queryWrapper = new QueryWrapper();
		queryWrapper.orderByDesc("updated");
		//使用接口 包装分页数据
		iPage = itemMapper.selectPage(iPage,queryWrapper);

		long total = iPage.getTotal();
		List<Item> itemList = iPage.getRecords();
		return new EasyUITable(total,itemList); //已经封装好了分页的相关参数，提前把下一页做缓存，掉方法上下也数据都有了
	}







	/**
	 * 业务需求:	1.分页查询数据库记录
	 * 			2.封装VO对象
	 * 作业1:  手写分页的方式实现分页查询  sql
	 * 作业2:  查看官网API 实现MP分页查询
	 *
	 * 分页sql:  每页20条记录
	 * 	select * from tb_item limit 起始位置,每页行数.
	 * 第一页:
	 * 	select * from tb_item limit 0,20    0-19
	 * 第二页:
	 * 	select * from tb_item limit 20,20
	 * 第N页:
	 * 	select * from tb_item limit (page-1)*rows,rows
	 * @param page
	 * @param rows
	 * @return
	 */
	/*
	@Override
	public EasyUITable findItemByPage(int page, int rows) {
		//1.获取记录总数
		long total = itemMapper.selectCount(null);
		//2.手写分页
		int start = (page - 1) * rows;
		List<Item> itemList = itemMapper.findItemByPage(start,rows);

		return new EasyUITable(total,itemList);
	}*/
}
